package com.share.order.service;

import com.share.order.domain.EndOrderVo;
import com.share.order.domain.OrderInfo;
import com.share.order.domain.SubmitOrderVo;

import java.util.List;
import java.util.Map;

public interface IOrderInfoService {

    /**
     * 获取未完成订单
     * @param userId
     * @return
     */
    OrderInfo getNoFinishOrder(Long userId);


    /**
     * 生成订单
     * @param submitOrderVo
     * @return
     */
    Long saveOrder(SubmitOrderVo submitOrderVo);

    /**
     * 结束订单
     * @param endOrderVo
     */
    void endOrder(EndOrderVo endOrderVo);


    /**
     * 获取用户订单分页列表
     * @param userId
     * @return
     */
    List<OrderInfo> selectOrderListByUserId(Long userId);


    /**
     * 获取订单详细信息
     * @param id
     * @return
     */
    OrderInfo selectOrderInfoById(Long id);


    /**
     * 根据订单号获取订单信息
     * @param orderNo
     * @return
     */
    OrderInfo getByOrderNo(String orderNo);

    /**
     * 处理支付成功
     * @param orderNo
     */
    void processPaySucess(String orderNo);

    /**
     * 根据传来的sql语句查询数据库
     * @param sql
     * @return
     */
    Map<String, Object> getOrderCount(String sql);
}
